All USB class drivers are now automatically included when LUFA/Drivers/USB.h is included, and no longer need to be seperately included.
All LowLevel demos changed to use the constants and types defined in the USB class drivers.
This commit is contained in:
parent
8f3bee7d86
commit
b37d77eab3
208 changed files with 589 additions and 2910 deletions
|
|
@ -41,12 +41,5 @@
|
|||
#define PIMA_OPERATION_OPENSESSION 0x1002
|
||||
#define PIMA_OPERATION_CLOSESESSION 0x1003
|
||||
|
||||
#define PIMA_RESPONSE_OK 0x2001
|
||||
#define PIMA_RESPONSE_GENERALERROR 0x2002
|
||||
#define PIMA_RESPONSE_SESSIONNOTOPEN 0x2003
|
||||
#define PIMA_RESPONSE_INVALIDTRANSACTIONID 0x2004
|
||||
#define PIMA_RESPONSE_OPERATIONNOTSUPPORTED 0x2005
|
||||
#define PIMA_RESPONSE_PARAMETERNOTSUPPORTED 0x2006
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ void SImage_SendBlockHeader(void)
|
|||
Pipe_Write_Stream_LE(&PIMA_SendBlock, PIMA_COMMAND_SIZE(0));
|
||||
|
||||
/* If the block type is a command, send its parameters (if any) */
|
||||
if (PIMA_SendBlock.Type == CType_CommandBlock)
|
||||
if (PIMA_SendBlock.Type == PIMA_CONTAINER_CommandBlock)
|
||||
{
|
||||
/* Determine the size of the parameters in the block via the data length attribute */
|
||||
uint8_t ParamBytes = (PIMA_SendBlock.DataLength - PIMA_COMMAND_SIZE(0));
|
||||
|
|
@ -169,7 +169,7 @@ uint8_t SImage_ReceiveBlockHeader(void)
|
|||
Pipe_Read_Stream_LE(&PIMA_ReceivedBlock, PIMA_COMMAND_SIZE(0));
|
||||
|
||||
/* Check if the returned block type is a response block */
|
||||
if (PIMA_ReceivedBlock.Type == CType_ResponseBlock)
|
||||
if (PIMA_ReceivedBlock.Type == PIMA_CONTAINER_ResponseBlock)
|
||||
{
|
||||
/* Determine the size of the parameters in the block via the data length attribute */
|
||||
uint8_t ParamBytes = (PIMA_ReceivedBlock.DataLength - PIMA_COMMAND_SIZE(0));
|
||||
|
|
|
|||
|
|
@ -43,54 +43,9 @@
|
|||
#include "../StillImageHost.h"
|
||||
|
||||
/* Macros: */
|
||||
/** Length in bytes of a given Unicode string's character length.
|
||||
*
|
||||
* \param[in] chars Total number of Unicode characters in the string
|
||||
*/
|
||||
#define UNICODE_STRING_LENGTH(chars) ((chars) << 1)
|
||||
|
||||
/** Timeout period between the issuing of a command to a device, and the reception of the first packet. */
|
||||
#define COMMAND_DATA_TIMEOUT_MS 10000
|
||||
|
||||
/** Used in the DataLength field of a PIMA container, to give the total container size in bytes for
|
||||
* a command container.
|
||||
*
|
||||
* \param[in] params Number of parameters which are to be sent in the Param field of the container
|
||||
*/
|
||||
#define PIMA_COMMAND_SIZE(params) ((sizeof(PIMA_SendBlock) - sizeof(PIMA_SendBlock.Params)) + \
|
||||
((params) * sizeof(PIMA_SendBlock.Params[0])))
|
||||
|
||||
/** Used in the DataLength field of a PIMA container, to give the total container size in bytes for
|
||||
* a data container.
|
||||
*
|
||||
* \param[in] datalen Length in bytes of the data in the container
|
||||
*/
|
||||
#define PIMA_DATA_SIZE(datalen) ((sizeof(PIMA_SendBlock) - sizeof(PIMA_SendBlock.Params)) + datalen)
|
||||
|
||||
/* Type Defines: */
|
||||
/** Type define for a PIMA container, use to send commands and receive responses to and from an
|
||||
* attached Still Image device.
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
uint32_t DataLength; /**< Length of the container and data, in bytes */
|
||||
uint16_t Type; /**< Container type, a value from the PIMA_Container_Types_t enum */
|
||||
uint16_t Code; /**< Command, event or response code of the container */
|
||||
uint32_t TransactionID; /**< Unique container ID to link blocks together */
|
||||
uint32_t Params[3]; /**< Block parameters to be issued along with the block code (command blocks only) */
|
||||
} PIMA_Container_t;
|
||||
|
||||
/* Enums: */
|
||||
/** Enum for the possible PIMA contains types. */
|
||||
enum PIMA_Container_Types_t
|
||||
{
|
||||
CType_Undefined = 0, /**< Undefined container type */
|
||||
CType_CommandBlock = 1, /**< Command Block container type */
|
||||
CType_DataBlock = 2, /**< Data Block container type */
|
||||
CType_ResponseBlock = 3, /**< Response container type */
|
||||
CType_EventBlock = 4, /**< Event Block container type */
|
||||
};
|
||||
|
||||
/* External Variables: */
|
||||
extern PIMA_Container_t PIMA_SendBlock;
|
||||
extern PIMA_Container_t PIMA_ReceivedBlock;
|
||||
|
|
|
|||
|
|
@ -180,7 +180,7 @@ void StillImage_Task(void)
|
|||
PIMA_SendBlock = (PIMA_Container_t)
|
||||
{
|
||||
.DataLength = PIMA_COMMAND_SIZE(0),
|
||||
.Type = CType_CommandBlock,
|
||||
.Type = PIMA_CONTAINER_CommandBlock,
|
||||
.Code = PIMA_OPERATION_GETDEVICEINFO,
|
||||
.TransactionID = 0x00000000,
|
||||
.Params = {},
|
||||
|
|
@ -252,7 +252,7 @@ void StillImage_Task(void)
|
|||
}
|
||||
|
||||
/* Verify that the command completed successfully */
|
||||
if ((PIMA_ReceivedBlock.Type != CType_ResponseBlock) || (PIMA_ReceivedBlock.Code != PIMA_RESPONSE_OK))
|
||||
if ((PIMA_ReceivedBlock.Type != PIMA_CONTAINER_ResponseBlock) || (PIMA_ReceivedBlock.Code != PIMA_RESPONSE_OK))
|
||||
{
|
||||
ShowCommandError(PIMA_ReceivedBlock.Code, true);
|
||||
|
||||
|
|
@ -265,7 +265,7 @@ void StillImage_Task(void)
|
|||
PIMA_SendBlock = (PIMA_Container_t)
|
||||
{
|
||||
.DataLength = PIMA_COMMAND_SIZE(1),
|
||||
.Type = CType_CommandBlock,
|
||||
.Type = PIMA_CONTAINER_CommandBlock,
|
||||
.Code = PIMA_OPERATION_OPENSESSION,
|
||||
.TransactionID = 0x00000000,
|
||||
.Params = {0x00000001},
|
||||
|
|
@ -284,7 +284,7 @@ void StillImage_Task(void)
|
|||
}
|
||||
|
||||
/* Verify that the command completed successfully */
|
||||
if ((PIMA_ReceivedBlock.Type != CType_ResponseBlock) || (PIMA_ReceivedBlock.Code != PIMA_RESPONSE_OK))
|
||||
if ((PIMA_ReceivedBlock.Type != PIMA_CONTAINER_ResponseBlock) || (PIMA_ReceivedBlock.Code != PIMA_RESPONSE_OK))
|
||||
{
|
||||
ShowCommandError(PIMA_ReceivedBlock.Code, true);
|
||||
|
||||
|
|
@ -297,7 +297,7 @@ void StillImage_Task(void)
|
|||
PIMA_SendBlock = (PIMA_Container_t)
|
||||
{
|
||||
.DataLength = PIMA_COMMAND_SIZE(1),
|
||||
.Type = CType_CommandBlock,
|
||||
.Type = PIMA_CONTAINER_CommandBlock,
|
||||
.Code = PIMA_OPERATION_CLOSESESSION,
|
||||
.TransactionID = 0x00000001,
|
||||
.Params = {0x00000001},
|
||||
|
|
@ -316,7 +316,7 @@ void StillImage_Task(void)
|
|||
}
|
||||
|
||||
/* Verify that the command completed successfully */
|
||||
if ((PIMA_ReceivedBlock.Type != CType_ResponseBlock) || (PIMA_ReceivedBlock.Code != PIMA_RESPONSE_OK))
|
||||
if ((PIMA_ReceivedBlock.Type != PIMA_CONTAINER_ResponseBlock) || (PIMA_ReceivedBlock.Code != PIMA_RESPONSE_OK))
|
||||
{
|
||||
ShowCommandError(PIMA_ReceivedBlock.Code, true);
|
||||
|
||||
|
|
|
|||
|
|
@ -45,7 +45,6 @@
|
|||
|
||||
#include "ConfigDescriptor.h"
|
||||
|
||||
#include "Lib/PIMACodes.h"
|
||||
#include "Lib/StillImageCommands.h"
|
||||
|
||||
#include <LUFA/Drivers/Misc/TerminalCodes.h>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue